]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspace: Initialize overview windows correctly in constructor
authorSundeep Mediratta <smedius@gmail.com>
Sun, 23 Jun 2024 14:12:51 +0000 (10:12 -0400)
committerSundeep Mediratta <smedius@gmail.com>
Sun, 23 Jun 2024 19:32:18 +0000 (15:32 -0400)
Currently overview windows added in workspace constructor lack monitoring
the skip-taskbar property. All other windows added after this have
this monitoring.

This uses existing code to correctly add the signal and removes all redundant
code.

It also insures all transients are handled correctly on initialization using
the existing code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3386>

js/ui/workspace.js

index 4787cdf0e784ef0908a4f4cffcbd7a2f08321092..147b843ded6325f72bdf612e674589aa14263366 100644 (file)
@@ -1089,16 +1089,11 @@ class Workspace extends St.Widget {
         this.connect('destroy', this._onDestroy.bind(this));
 
         this._skipTaskbarSignals = new Map();
-        const windows = global.get_window_actors().map(a => a.meta_window)
-            .filter(this._isMyWindow, this);
-
-        // Create clones for windows that should be
-        // visible in the Overview
         this._windows = [];
-        for (let i = 0; i < windows.length; i++) {
-            if (this._isOverviewWindow(windows[i]))
-                this._addWindowClone(windows[i]);
-        }
+        this._layoutFrozenId = 0;
+
+        // DND requires this to be set
+        this._delegate = this;
 
         // Track window changes, but let the window tracker process them first
         this.metaWorkspace?.connectObject(
@@ -1109,10 +1104,10 @@ class Workspace extends St.Widget {
             'window-entered-monitor', this._windowEnteredMonitor.bind(this), GObject.ConnectFlags.AFTER,
             'window-left-monitor', this._windowLeftMonitor.bind(this), GObject.ConnectFlags.AFTER,
             this);
-        this._layoutFrozenId = 0;
 
-        // DND requires this to be set
-        this._delegate = this;
+        // Create clones for windows that should be
+        // visible in the Overview
+        global.get_window_actors().map(a => this._doAddWindow(a.meta_window));
     }
 
     _shouldLeaveOverview() {